#ifndef CSE168_SEETHRU_H_INCLUDED
#define CSE168_SEETHRU_H_INCLUDED

#include "Material.h"


class SeeThru: public Material
{
public:
    SeeThru(float (*rIndex)(short) = 0);
    virtual ~SeeThru();

    //const float & rIndex() const {return refIndex;}

    //void setrIndex(const float & rIndex) {refIndex = rIndex;}

    virtual void preCalc() {}
    
    virtual Vector3 shade(const Ray& ray, const HitInfo& hit, char RayCount, const Scene& scene,
                          int mode=RAYTRACE, Vector3 rayColor=Vector3(1), bool diffuseRay=false) const;

    virtual void handlePhoton(const Ray& ray, const HitInfo& hit, char rayCount, Vector3 photonFlux, const Scene& scene,
    					 	  int mode=APPM_PHOTON, LightPath *lp=0) const;
protected:
	float (*refIndex)(short);
};

#endif
